<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Task: Operation Design</title>
<meta name="uma.type" content="Task">
<meta name="uma.name" content="operation_design">
<meta name="uma.presentationName" content="Operation Design">
<meta name="uma.category" content="Discipline:rup_analysis_design_discipline:分析与设计">
<meta name="element_type" content="activity">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../css/default.css" type="text/css">
<script src="./../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo, '', true, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<div id="page-guid" value="_JPsAEN90EdmvvvV6NEU6eA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Task: Operation Design</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../images/task.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">This task refines the results of Operation Analysis into detailed Operation Realizations. </td>
</tr>
<tr>
<td>Disciplines: <a href="./../../rup/disciplines/rup_analysis_design_discipline_29760231.html" guid="_ydt62NnmEdmO6L4XMImrsA">分析与设计</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Purpose</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><ul>
    <li>
        To refine the preliminary subsystem interactions into Operation Realizations in the Design Model.
    </li>
    <li>
        To refine and specify the Subsystem Operations.
    </li>
</ul></td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Roles</th><td class="sectionTableCell" width="42%"><span class="sectionTableCellHeading">Primary Performer:
								</span>
<ul>
<li>
<a href="./../../rup/roles/rup_designer_BA8DE74E.html" guid="{DB21F5EF-810B-4994-B120-79FA8774FA9D}">设计人员</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">Additional Performers:
								</span>
<ul>
<li>
<a href="./../../rup/roles/rup_software_architect_DB0BF177.html" guid="{4AC346F0-E6FC-4D2C-8410-2EDF8DDDC91D}">软件架构师</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Inputs</th><td class="sectionTableCell" width="42%"><span class="sectionTableCellHeading">Mandatory:
								</span>
<ul>
<li>
<a href="./../../rup/workproducts/rup_operation_AD3B6CA6.html" guid="_vGkssN90EdmvvvV6NEU6eA">操作</a>
</li>
<li>
<a href="./../../rup/workproducts/rup_operation_realization_FE1CAA1E.html" guid="_FViCMN91EdmvvvV6NEU6eA">操作实现</a>
</li>
<li>
<a href="./../../rup/workproducts/rup_analysis_model_76C3B70C.html" guid="{98EA224C-36F6-46E6-AB36-2999382B58B3}">分析模型</a>
</li>
<li>
<a href="./../../rup/workproducts/rup_usecase_model_EF15E534.html" guid="{9C66F2EC-EDEB-4369-9AFB-04B9E7CBCB8E}">用例模型</a>
</li>
</ul>
<ul></ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">Optional:
								</span>
<ul>
<li>None</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Outputs</th><td class="sectionTableCell" colspan="2">
<ul>
<li>
<a href="./../../rup/workproducts/rup_deployment_model_57DF1DF5.html" guid="{5981B6BE-2FD1-4984-AA94-2F7428439BA6}">部署模型</a>
</li>
<li>
<a href="./../../rup/workproducts/rup_operation_AD3B6CA6.html" guid="_vGkssN90EdmvvvV6NEU6eA">操作</a>
</li>
<li>
<a href="./../../rup/workproducts/rup_operation_realization_FE1CAA1E.html" guid="_FViCMN91EdmvvvV6NEU6eA">操作实现</a>
</li>
<li>
<a href="./../../rup/workproducts/rup_design_model_2830034D.html" guid="{8CDAEAD4-5E84-4F50-87FD-3240ED047DE7}">设计模型</a>
</li>
</ul>
<ul></ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Steps</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="sectionTableSingleCell">
<div class="stepHeading">Create Operation Realizations</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    In <a class="elementLinkWithType" href="./../../rup/tasks/operation_analysis_14743F05.html" guid="_cnJO4N9yEdmvvvV6NEU6eA">Task: Operation Analysis</a>, the Designer created subsystem interactions (without much
    detail) in the Analysis Model. <b>Recall that you had organized the granularity of these interactions so that they were
    grouped by System Operation, that is, you captured the interactions that realize each System Operation</b>. Now,
    working with the expanded (white-box) system use-case descriptions, the detail of messages, entities exchanged,
    sequencing, control flow, and associated data is added and the resulting Operation Realizations are captured in the
    Design Model, again organized by System Operation. As this detail is added, the Designer evaluates the quality of the
    emergent collaborations, looking for opportunities to refactor the design. Annotate the Operation Realizations with
    descriptions of what the subsystem does when processing a message (drawn from the white-box step description and
    refined if necessary). These descriptions help with the next step, to develop specifications for each <i>Sub</i>system
    Operation.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading">Aggregate similar subsystem white-box steps and specify Subsystem Operations</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    The Designer produced the initial Subsystem Operation Survey placeholder during the Operation Analysis task. The survey
    table also shows (with a gray background) the traceability back to the system use case black-box steps, indicating (in
    the table) that system use case black-box steps &lt;id 1&gt; and &lt;id 2&gt; are both performed by invocations of
    &lt;system operation name 1&gt;.
</p>
<div align="center">
    <center>
        <table width="96%" border="1">
            <tbody>
                <tr>
                    <td align="middle" colspan="9">
                        <font face="Arial" size="3"><b><i>Subsystem &lt;name&gt;</i></b></font>
                    </td>
                </tr>
                <tr>
                    <td align="middle" width="15%">
                        <font face="Arial" size="2"><b>System Operation</b></font>
                    </td>
                    <td align="middle" width="17%" bgcolor="#c0c0c0">
                        <font face="Arial" size="2"><b>System Use Case Black-Box Step Identifier</b></font>
                    </td>
                    <td align="middle" width="16%">
                        <font face="Arial" size="2"><b>Locality</b></font>
                    </td>
                    <td align="middle" width="17%">
                        <font face="Arial" size="2"><b>Process</b></font>
                    </td>
                    <td align="middle" width="17%">
                        <font face="Arial" size="2"><b>Worker</b></font>
                    </td>
                    <td align="middle" width="35%">
                        <font face="Arial" size="2"><b>Subsystem White-Box Step Description</b></font>
                    </td>
                    <td align="middle" width="35%">
                        <font face="Arial" size="2"><b>Subsystem Operation</b></font>
                    </td>
                </tr>
                <tr>
                    <td align="middle" width="15%" rowspan="4">
                        <p align="center">
                            <font face="Arial" size="2">&lt;system operation</font> <font face="Arial"                             size="2">name1&gt;</font>
                        </p>
                    </td>
                    <td align="middle" width="17%" bgcolor="#c0c0c0" rowspan="3">
                        <font face="Arial" size="2">&lt;id 1&gt;</font>
                    </td>
                    <td align="middle" width="16%">
                        <font face="Arial" size="2">Locality identifier</font>
                    </td>
                    <td align="middle" width="17%">
                        <font face="Arial" size="2">Process identifier</font>
                    </td>
                    <td align="middle" width="17%">
                        <font face="Arial" size="2">Organization or System Worker identifier</font>
                    </td>
                    <td width="35%">
                        <font face="Arial" size="2">(white-box step identifier): description of an action performed by a
                        <b>subsystem</b> (performing part of the black-box step) in the form of input, processing,
                        output</font>
                    </td>
                    <td width="35%">
                        <font face="Arial" size="2"><span                         style="mso-bidi-font-size: 12.0pt; mso-fareast-font-family: Times New Roman; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">(subsystem
                        operation identifier): name of the subsystem operation which is invoked for this step, for example,
                        "«subsystem operation» Start a Sales List" (for subsystem <b>Order Processing</b>)</span></font>
                    </td>
                </tr>
                <tr>
                    <td align="middle" width="16%">
                        <font face="Arial" size="2">...</font>
                    </td>
                    <td align="middle" width="17%">
                        ...
                    </td>
                    <td align="middle" width="17%">
                        &nbsp;
                    </td>
                    <td width="35%">
                        <font face="Arial" size="2">(white-box step identifier):...</font>
                    </td>
                    <td width="35%">
                        &nbsp;
                    </td>
                </tr>
                <tr>
                    <td align="middle" width="16%">
                        <font face="Arial" size="2">...</font>
                    </td>
                    <td align="middle" width="17%">
                        ...
                    </td>
                    <td align="middle" width="17%">
                        &nbsp;
                    </td>
                    <td align="middle" width="35%">
                        ...
                    </td>
                    <td align="middle" width="35%">
                        &nbsp;
                    </td>
                </tr>
                <tr>
                    <td align="middle" width="17%" bgcolor="#c0c0c0">
                        <font face="Arial" size="2">&lt;id 2&gt;</font>
                    </td>
                    <td align="middle" width="16%">
                        <font face="Arial" size="2">...</font>
                    </td>
                    <td align="middle" width="17%">
                        ...
                    </td>
                    <td align="middle" width="17%">
                        &nbsp;
                    </td>
                    <td align="middle" width="35%">
                        ...
                    </td>
                    <td align="middle" width="35%">
                        &nbsp;
                    </td>
                </tr>
                <tr>
                    <td align="middle" width="15%" rowspan="2">
                        <font face="Arial" size="2">&lt;system operation name2&gt;</font>
                    </td>
                    <td align="middle" width="17%" bgcolor="#c0c0c0">
                        <font face="Arial" size="2">&lt;id 3&gt;</font>
                    </td>
                    <td align="middle" width="16%">
                        <font face="Arial" size="2">...</font>
                    </td>
                    <td align="middle" width="17%">
                        ...
                    </td>
                    <td align="middle" width="17%">
                        &nbsp;
                    </td>
                    <td align="middle" width="35%">
                        ...
                    </td>
                    <td align="middle" width="35%">
                        &nbsp;
                    </td>
                </tr>
                <tr>
                    <td align="middle" width="17%" bgcolor="#c0c0c0">
                        <font face="Arial" size="2">&lt;id 4&gt;</font>
                    </td>
                    <td align="middle" width="16%">
                        <font face="Arial" size="2">...</font>
                    </td>
                    <td align="middle" width="17%">
                        ...
                    </td>
                    <td align="middle" width="17%">
                        &nbsp;
                    </td>
                    <td align="middle" width="35%">
                        ...
                    </td>
                    <td align="middle" width="35%">
                        &nbsp;
                    </td>
                </tr>
                <tr>
                    <td align="middle" width="15%">
                        <font face="Arial" size="2">...</font>
                    </td>
                    <td align="middle" width="17%" bgcolor="#c0c0c0">
                        <font face="Arial" size="2">...</font>
                    </td>
                    <td align="middle" width="16%">
                        <font face="Arial" size="2">...</font>
                    </td>
                    <td align="middle" width="17%">
                        ...
                    </td>
                    <td align="middle" width="17%">
                        &nbsp;
                    </td>
                    <td align="middle" width="35%">
                        ...
                    </td>
                    <td align="middle" width="35%">
                        &nbsp;
                    </td>
                </tr>
            </tbody>
        </table>
    </center>
</div>
<p class="tableheading" align="center">
    Example Subsystem Operation Survey.
</p>
<p>
    Next, working from the white-box steps and the Operation Realizations, the Subsystem Operations are identified and
    their behavior specified. As with the identification of system operations, there <i>might not</i> be a unique subsystem
    operation for each white-box step; that is, as you examine the set of white-box steps and their associated exchange of
    messages, input-output entities, and so forth., you might find that it is possible to define a smaller set of Subsystem
    Operations to fulfill their needs.
</p>
<p>
    Note that the survey table can also be resorted by locality or by process, thus showing the association of a set of
    Subsystem Operations with each locality or with each process. The locality sort gives an indication of the computing
    load at a locality (and so is useful for reasoning about the capacity of the physical components that support the
    locality). In this form, the survey sorted by locality becomes a property of the Deployment Model.
</p>
<p>
    When a Subsystem Operation is hosted at multiple localities, this indicates that at least part of the subsystem is
    replicated. There is no implication that these replicated portions <i>necessarily</i> share data or are kept in
    synchronization. These are design choices which depend on the application and reason for replication; for example, the
    processing required might be identical, but occur for a different business segment. In the extreme, all of a
    subsystem's operations can be hosted at multiple localities, meaning that, effectively, the subsystem itself is
    replicated. The need to identify replicated instances uniquely also depends on the reasons for replication.
</p>
<p>
    The process sort allows the Designer to reason about concurrency issues: if you were to view a Subsystem Operation as a
    discrete piece of functionality available to actors, then, as a first approximation, operations associated with the
    same process cannot be performed in parallel. This might lead the Designer to reconsider the process allocation, or
    consider process replication, or to examine the perceived latency problem at a lower level of detail, for example,
    through examination of time-slicing options, and process sharing when an operation blocks (to do input-output, for
    example). These techniques can give acceptable responsiveness, whereas a delaying of the start of an operation
    (strictly serializing operations) might be intolerable. In this form, the survey sorted by process becomes a property
    of the Design Model.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading">Footnote What have you achieved</div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><p>
    For each subsystem, you have:
</p>
<ul>
    <li>
        defined its operations
    </li>
    <li>
        defined the interfaces you expect the subsystem to support
    </li>
    <li>
        described how the subsystem collaborates with other subsystems to realize the <i>system</i> use cases
    </li>
    <li>
        defined the subsystem's context: its actors, interfaces and I/O entities
    </li>
</ul>
<p>
    You are thus well positioned to be able to hand-off this set of work products for independent development, if you so
    choose, or to re-invoke NUP's tasks in the Requirements discipline, to perform further decomposition in a recursive
    fashion.
</p></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">More Information</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Concepts</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../rup/guidances/concepts/supplementary_reqs_flowdown_69E8E8A9.html" guid="_vt06oOM9EdmaZcY4PeqVxA">补充需求分解</a>
</li>
<li>
<a href="./../../rup/guidances/concepts/derived_requirements_736A0AC0.html" guid="_khKN4OM9EdmaZcY4PeqVxA">派生的需求</a>
</li>
<li>
<a href="./../../rup/guidances/concepts/locality_E2133437.html" guid="_qmDvkOM9EdmaZcY4PeqVxA">位置</a>
</li>
<li>
<a href="./../../rup/guidances/concepts/use_case_flowdown_6BF482DB.html" guid="_6SxgEOM9EdmaZcY4PeqVxA">用例分解</a>
</li>
<li>
<a href="./../../rup/guidances/concepts/component_specification_1CF79FD.html" guid="_wfrDwOM8EdmaZcY4PeqVxA">组件规约</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
